package main

import (
	"fmt"
	"time"
)

func main() {
	/**
	  go 提供了一个select功能, 作用于channel之上, 多路复用
		select会随机公平的选择一个case语句执行
	select的应用场景	1. timeout超时机制
	*/

	timeout := make(chan bool, 2)
	timeout2 := make(chan bool, 2)
	go func() {
		time.Sleep(time.Second * 5)
		timeout <- true
	}()
	go func() {
		time.Sleep(time.Second * 1)
		timeout2 <- true
	}()
	select {
	case <-timeout:
		fmt.Println("timeout超时了")
	case <-timeout2:
		fmt.Println("timeout超时了")
	default:
		fmt.Println("继续下一次")
	}
}
